﻿Imports CapaLogica
Imports CapaLogica.CL.Carrera
Imports CapaLogica.CL.Carrera.CarreraPersistente
Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Grupo
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Collections

Public Class frmModificarCurso

    Private _id As Int32
    Private _codigo As String
    Private _nombre As String
    Private _descripcion As String



    Public Sub New(ByVal pid As Int32, ByVal pcodigo As String, ByVal pnombre As String, ByVal pdescripcion As String)

        InitializeComponent()

        _id = pid
        _codigo = pcodigo
        _nombre = pnombre
        _descripcion = pdescripcion

    End Sub

    Private Sub frmModificarCurso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarDatos()
        cargarCarreras()
        cargarCarrerasAsociadas()
        eliminarElementosRepetidos(ltBoxCarrerasSinAsociar, ltBoxCarrerasAsociadas)
    End Sub

    Public Sub cargarCarrerasAsociadas()
        setearLista(ltBoxCarrerasAsociadas)

        Dim list As List(Of Informacion)
        list = GestorCarrera.buscarCarrerasAsociadasCurso(_id)

        For Each carrera As Informacion In list
            ltBoxCarrerasAsociadas.Items.Add(carrera)
        Next

        'ltBoxCarrerasAsociadas.DisplayMember = "nombre"
    End Sub

    Public Sub cargarDatos()
        txtCodigoCurso.Text = _codigo
        txtNombreCurso.Text = _nombre
        txtDescripcion.Text = _descripcion
    End Sub

    Public Sub cargarCarreras()

        setearLista(ltBoxCarrerasSinAsociar)

        Dim list As List(Of Informacion)
        list = GestorCarrera.listarTodasLasCarreras()

        For Each carrera As Informacion In list
            ltBoxCarrerasSinAsociar.Items.Add(carrera)
        Next

    End Sub

    Private Sub btnAsociarCarreraCurso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsociarCarreraCurso.Click
        cambiarElementosDeListas(ltBoxCarrerasAsociadas, ltBoxCarrerasSinAsociar)
    End Sub

    Private Sub btnDesasociarCarreraCurso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDesasociarCarreraCurso.Click
        cambiarElementosDeListas(ltBoxCarrerasSinAsociar, ltBoxCarrerasAsociadas)
    End Sub

    Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
        Try
            If txtCodigoCurso.Text = Nothing Or txtNombreCurso.Text = Nothing Or txtDescripcion.Text = Nothing Then
                MsgBox("Los campos código curso, nombre y descripción no pueden quedar vacíos!", MsgBoxStyle.Exclamation, "Error")
            Else
                Dim Pregunta As Integer
                Pregunta = MsgBox("¿Desea modificar el curso?", vbYesNo + vbExclamation + vbDefaultButton2, "Modificar Curso.")
                If Pregunta = vbYes Then
                    Dim listaCarrerasA As New List(Of Int32)
                    listaCarrerasA = obtenerIdsDeListBox(ltBoxCarrerasAsociadas)
                    GestorCurso.modificarCurso(txtCodigoCurso.Text, txtNombreCurso.Text, txtDescripcion.Text, _id, listaCarrerasA)
                    MsgBox("Curso  modificado.", MsgBoxStyle.Information, "Curso")
                    Me.Dispose()
                Else
                    MsgBox("Curso no modificado!", MsgBoxStyle.Information, "Curso")
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
        End Try


    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Me.Dispose()
    End Sub



End Class